package com.spsoft.vatoutinv.model.dto.matchflow;

import com.spsoft.core.model.PageDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 手工匹配流水/撤销 分页查询对象
 *
 * @author : chenxudong
 * @date : 2024/6/25 10:54
 */
@Data
@ApiModel(value = "手工匹配流水或撤销-分页查询对象")
@EqualsAndHashCode(callSuper = true)
public class VmsMatchFlowPageDto extends PageDto implements Serializable {

    /**
     * 开票单位
     */
    @ApiModelProperty(value = "开票单位")
    @NotBlank(message = "开票单位不能为空")
    private String deptCode;

    /**
     * 发票类型
     * 01：数电专 02：数电普 004：增值税专用发票 007：增值税普通发票 026：电子普通发票
     */
    @ApiModelProperty(value = "发票类型 01：数电专 02：数电普 004：增值税专用发票 007：增值税普通发票 026：电子普通发票")
    private String fplx;

    /**
     * 发票代码
     */
    @ApiModelProperty(value = "发票代码")
    private String fpdm;

    /**
     * 发票号码
     */
    @ApiModelProperty(value = "发票号码")
    private String fphm;

    /**
     * 匹配日期起
     */
    @ApiModelProperty(value = "匹配日期起 yyyy-MM-dd")
    @NotBlank(message = "匹配日期起不能为空")
    private String pprqq;

    /**
     * 匹配日期止
     */
    @ApiModelProperty(value = "匹配日期止 yyyy-MM-dd")
    @NotBlank(message = "匹配日期止不能为空")
    private String pprqz;

    /**
     * 允许金额差异起
     */
    @ApiModelProperty(value = "允许金额差异起")
    private BigDecimal yxjecyq;

    /**
     * 允许金额差异止
     */
    @ApiModelProperty(value = "允许金额差异止")
    private BigDecimal yxjecyz;

    /**
     * 审批流程类型 0：发票匹配流水 1：发票匹配流水撤销
     */
    @ApiModelProperty(hidden = true)
    private String applyType;

    /**
     * 交易机构集合
     */
    @ApiModelProperty(hidden = true)
    private List<String> deptCodeList;
}
